[Docs] [txt|pdf] [Tracker] [Email] [Nits]

Versions: 00

Network Working Group                                  P. Pillay-Esnault
Internet-Draft                                              B. Pithawala
Intended status: Standards Track                                D. Yeung
Expires: September 7, 2012                                 Cisco Systems
                                                           March 6, 2012


                    Service Distribution using OSPF
           draft-pillay-esnault-ospf-service-distribution-00

Abstract

   The Open Shortest Path First (OSPF) protocol is used to carry data on
   behalf of other services using the Opaque Link State Advertisements.
   The protocol's flooding mechanism is well suited to cover the data
   propagation requirements of services such as Traffic Engineering.
   The current mechanism cannot scale for a large number of services nor
   satisfy some of their new set of requirements.  This document
   describes a new mechanism in OSPF to support service and data
   distribution for a large number of services, computation of preferred
   service access points and a controlled service data exchange.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on September 7, 2012.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents



Pillay-Esnault, et al.  Expires September 7, 2012               [Page 1]

Internet-Draft       Service Distribution using OSPF          March 2012


   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Specification of Requirements  . . . . . . . . . . . . . . . .  3
   3.  Requirements for service data propagation  . . . . . . . . . .  3
   4.  Typical Scenario for Services Distribution Router  . . . . . .  4
   5.  OSPF Service Distribution Router . . . . . . . . . . . . . . .  5
   6.  Storage Of Service Data  . . . . . . . . . . . . . . . . . . .  6
   7.  Mechanics of the OSPF Service Information Distribution
       Implementation . . . . . . . . . . . . . . . . . . . . . . . .  7
     7.1.  Advertising and Signaling of SDR Capability  . . . . . . .  7
     7.2.  Advertising the Service Distribution Router and its
           address mapping  . . . . . . . . . . . . . . . . . . . . .  8
     7.3.  Advertising the Directory of Producers and Consumers . . .  9
     7.4.  Service Routing Capable Router Operations  . . . . . . . . 12
       7.4.1.  Operation due to Producer changes  . . . . . . . . . . 13
       7.4.2.  Operation due to Consumer changes  . . . . . . . . . . 13
   8.  Calculation of Optimal Producer  . . . . . . . . . . . . . . . 14
   9.  Service Router Data Operations . . . . . . . . . . . . . . . . 14
     9.1.  Implementation of SDDA . . . . . . . . . . . . . . . . . . 15
     9.2.  SDR Message Formats  . . . . . . . . . . . . . . . . . . . 15
     9.3.  SDR Message Header Format  . . . . . . . . . . . . . . . . 16
     9.4.  OPEN Message Format  . . . . . . . . . . . . . . . . . . . 16
     9.5.  CONFIRM Message Format . . . . . . . . . . . . . . . . . . 18
     9.6.  UPDATE Message Format  . . . . . . . . . . . . . . . . . . 18
     9.7.  NOTIFICATION Message Format  . . . . . . . . . . . . . . . 20
       9.7.1.  Message Header Error . . . . . . . . . . . . . . . . . 21
       9.7.2.  OPEN Message Error . . . . . . . . . . . . . . . . . . 21
       9.7.3.  CONFIRM Message Error  . . . . . . . . . . . . . . . . 22
       9.7.4.  UPDATE Message Error . . . . . . . . . . . . . . . . . 22
       9.7.5.  Cease  . . . . . . . . . . . . . . . . . . . . . . . . 22
   10. Security Considerations  . . . . . . . . . . . . . . . . . . . 22
   11. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 23
   12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 23
   13. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 23
   14. Normative References . . . . . . . . . . . . . . . . . . . . . 23









Pillay-Esnault, et al.  Expires September 7, 2012               [Page 2]

Internet-Draft       Service Distribution using OSPF          March 2012


1.  Introduction

   Originally, routing protocols were designed to propagate routing
   related information only.  With the advent of Traffic Engineering,
   the IGPs started to be used as a transport mechanism.  Most of the
   applications using IGPs as transport are still very much limited and
   confined to routing applications with similar requirements.

   Today, OSPF can carry data for applications using Opaque LSAs.  These
   Opaque LSAs are an integral part of the OSPF database and will be
   flooded, synchronized and updated just as any other LSA.  However,
   they do not contribute directly to any routes or trigger an SPF.

   Opaque LSAs will need to be flooded across all the OSPF area or
   domain and neighbor adjacencies to FULL state will depend on
   successful exchange of these LSAs.

   The Link State IGPs are limited on the size of payload information
   they can carry as it will be flooded and stored in every single
   router all across their areas or domain regardless whether it is of
   interest or not.

   This document describes a new mechanism in OSPF to support service
   and data distribution for a large number of services, computation of
   preferred service access points and controlled distribution of
   service data.

   We presuppose familiarity with the contents of [RFC4970], [RFC5250],
   [RFC2328] and [RFC5340] .

2.  Specification of Requirements

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

3.  Requirements for service data propagation

   Services requirements differ from the traditional routing information
   dissemination model.  The service data may be unrelated to routing or
   be of interest only to some routers.  The new set of requirements for
   using OSPF as Service Distribution Router (SDR) is as follows

      Scale to a large number of services

      No assumption regarding size, format or nature of the data





Pillay-Esnault, et al.  Expires September 7, 2012               [Page 3]

Internet-Draft       Service Distribution using OSPF          March 2012


      No assumption regarding topology

      Routing and service data separated and independent

      Must support cases where minimal number of routers only may be
      upgraded

      Must support dynamic events

      Routers only store and process data of interest

      Ability to compute the shortest path to a producer or consumer of
      a service per IGP metrics or service metrics.

      There is no assumptions regarding producers and consumers of
      services, their location or uniqueness.

      Secured data may reside only on some routers.

   In addition the routing requirements for OSPF as Service data
   distribution are

      Backward compatible with Open Standard OSPF

      Minimal/No impact on routing convergence and performance

4.  Typical Scenario for Services Distribution Router

   A SDR is typically reachable by multiple consumers or producers of
   data.  The router itself may not be connected directly to any other
   router with Service Distribution Capability.  The intermediate
   routers may have limited storage capability or cannot store the data
   for security reasons.

   The SDR is aware of the topological information of the other service
   routers and can compute paths to the preferred Producer SDR (PSDR) or
   the Consumers SDR (CSDR) of a service.The SDR will implement tables
   of producers and consumers for services.

   The SDR ensures that interested subscribers to a service are notified
   with the latest updates.

   Producers or consumers can join or leave a service at any time using
   APIs.  The SDR receiving the notification of "registration" or "de-
   registration" flood the change of state to all the known SDRs in its
   topology.  Therefore, all SDR have the same view of the producers/
   consumers topology.




Pillay-Esnault, et al.  Expires September 7, 2012               [Page 4]

Internet-Draft       Service Distribution using OSPF          March 2012


5.  OSPF Service Distribution Router

   A SDR leverages OSPF's capability to store and flood the topology and
   other attributes of SDR capable routers.  SDRs form an overlay and do
   not require to be directly connected to each other.  SDRs do not need
   to maintain adjacency between them other than the normal OSPF
   adjacency for routing purposes.  The SDRs rely on the OSPF underlying
   network for reachability to other SDR routers.

   SDRs advertise a directory of producers and consumers of services and
   are capable to compute preferred producers.  The SDRs delegate data
   exchange processing to remote SDRs to an external agent.  This agent
   is described in detail in section 9 of this document.

   The OSPF Opaque LSAs is used to carry relevant and interesting
   information for reachability and nature of SDR capable routers.

   In order to limit the service data dissemination costs (storage,
   bandwidth, security, ..), SDRs may store only data of interest.
































Pillay-Esnault, et al.  Expires September 7, 2012               [Page 5]

Internet-Draft       Service Distribution using OSPF          March 2012


       Access other           Distribute data to
       OSPF Routers           other Data Exchange Agent
             ^                          ^
             |                          |
             |                          |
       +----------------------------------------+
       |     |                          |       |
       |     |                          |       |
       |    +-------------+       +----------+  |
       |    |   OSPF      |       | Data     |  |
       |    |             |<-->   | Exchange |  |
       | +->|             |       | Agent    |  |
       | |  +-------------+       +----------+  |
       | |  | OSPF Area DB|         |           |
       | |  |             |         |           |
       | |  |             |         |           |   +------------+
       | |  |             |         |           |   |            |
       | |  +-------------+         |APIs       |   | Producer   |
       | |  | OSPF Opaque |         |(Access)   |   |  Apps.     |
       | |  |    LSAs     |         |           |   +------------+
       | |  |             |         |           |           |
       | |  |             |         |           |           |
       | |  +-------------+         |           |           |
       | |                          |           |           |
       | |    +---------------------v------+    |API(Update)|
       | +->  |    Service Data Database   |<---------------+
       |APIs  |     May be unrelated to    |    |(secured access)
       |      |         routing            |    |
       |      |                            | API|   +------------+
       |      |                           |<------->|            |
       |      +----------------------------+    |   | Consumer   |
       |                                        |   |  Apps      |
       |                                        |   +------------+
       +----------------------------------------+
              Service Distribution Router


                   The OSPF Service Distribution Router

   The following sections describe the extensions in OSPF protocol to
   support this capability.

6.  Storage Of Service Data

   The service data can be stored in an independent Service Data
   Database(SDD).  There is no assumption made here on the size, format
   or nature of data.  The data can even be stored on the disk of the
   router and accessible by APIs to OSPF and other applications for



Pillay-Esnault, et al.  Expires September 7, 2012               [Page 6]

Internet-Draft       Service Distribution using OSPF          March 2012


   query and update.  A SDD is not part of OSPF and does not participate
   in the bringing up of adjacencies.

   It is desirable that the service data database have a very flexible
   format to cater for a broad range of applications.  A possible
   solution is that the database records be defined as container objects
   which themselves contain service metadata.

7.  Mechanics of the OSPF Service Information Distribution
    Implementation

7.1.  Advertising and Signaling of SDR Capability

   The OSPF SDR router will identify itself to the rest of the domain by
   advertising its capability and a routable ip address.  For example,
   this address MAY be a loopback interface configured to uniquely
   identify an OSPF SDR router.  A new bit for SDR capability is
   reserved in the Router Information Capabilities TLV of the Router
   Information LSA, as defined in section 2.1 of [RFC4970].


       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            LS age             |     Options   |  11           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |       4       |                    0                          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                     Advertising Router                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                     LS sequence number                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         LS checksum           |             length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       +-                            TLVs                             -+
       |                             ...                               |


                      The OSPF Router Information LSA

      Flooding scope for AS 11

   The format of the Router Informational Capabilities TLV is defined in
   2.3 and 2.4 of [RFC4970]






Pillay-Esnault, et al.  Expires September 7, 2012               [Page 7]

Internet-Draft       Service Distribution using OSPF          March 2012


        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |              Type             |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |             Informational Capabilities                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                 The Router Informational Capabilities TLV

   A new informational capability bit is defined for Service
   Distribution Routers

      Bit Capabilities

      6 Service Distribution Router Capability

7.2.  Advertising the Service Distribution Router and its address
      mapping

   A new TLV is defined in the Router Information LSA is used to
   advertise a routable address to reach the router.


 TLV
       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            2                  |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     Address Format            |         Address length        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     Reachable IPv4/IPv6 address mapping to SDR                |
       :                                                               :
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |        SDR Metric             |        Type of metric         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                  Service router TLV and address Mapping

      Type: A 16-bit field set to 2 representing the Service
      Distribution Router Address Mapping This TLV is applicable both to
      OSPFv2 and OSPFv3.





Pillay-Esnault, et al.  Expires September 7, 2012               [Page 8]

Internet-Draft       Service Distribution using OSPF          March 2012


      Length: A 16-bit field that indicates the length of the value
      portion in octets.

      Address Format: A 16-bit field that indicates the length of the
      value portion in octets.

      Possible values



         1 : IPv4 Address

         2 : IPv6 Address

      Address Length: A 16-bit field that indicates the length of the
      value portion in octets.

      Address : Routable IPv4/IPv6 address mapped to SDR

      SDR metric: A 16-bit field that indicates SDR metric greater than
      0.

      Type of metric:



         0 : None defined - Ignore SDR Metric

         1 : SDR metric overrides the IGP metric

         2 : Computed metric is composite of IGP metric + SDR metric

7.3.  Advertising the Directory of Producers and Consumers

   Opaque LSAs with autonomous system flooding scope as described in
   [RFC5250], are used to describe the services reachable through this
   router using TLVs.

   Definition of TLV












Pillay-Esnault, et al.  Expires September 7, 2012               [Page 9]

Internet-Draft       Service Distribution using OSPF          March 2012


 0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           3                   |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Producer      |     Number of services(subTLVs)               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |              Sub TLV Description Serv n                       :
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~
       :                               .                               :
       ~+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+~
       |              Sub TLV Description Serv m                       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Subscriber    |    Number of services of interest (SubTLVs)   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |              Sub TLV Subscribe Serv x                         :
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~
       :                               .                               :
       ~+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+~
       |              Sub TLV Subscribe Serv y                         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       :                               .                               :


         Example of TLV for Directory of Producers and Subscribers

   Type: A 16-bit field set to 3 representing the Directory of the
   Service Distribution Router.  This TLV is applicable both to OSPFv2
   and OSPFv3.

   Length: A 16-bit field that indicates the length of the value portion
   in octets.

   Services are described in a unique sub-TLV.  The sub-TLV should
   contain a Service Identifier which uniquely identifies the service
   with network wide significance.  The sub-TLV format should be
   flexible and it MAY be used to advertise a preference metric for the
   service.













Pillay-Esnault, et al.  Expires September 7, 2012              [Page 10]

Internet-Draft       Service Distribution using OSPF          March 2012


 TLV
       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            1                  |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                          Service ID                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |Service metric                 |        Type of metric         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                        Service Description Sub-TLV

   Type: A 16-bit field set to 1 representing the Service Description
   Sub-TLV This TLV is applicable both to OSPFv2 and OSPFv3.

   Length: A 16-bit field that indicates the length of the value portion
   in octets.

   Service ID: A 32-bit field representing the Service Identifier.  This
   TLV is applicable both to OSPFv2 and OSPFv3.

   Service Metric: A 16-bit field that indicates the metric associated
   with the service.  A metric of 0 would represent undefined.  An
   unreachable or oversubscribed service has a metric of 0xFFFFFFFF.

   Type of metric:

      0 : None defined - Ignore Service Metric

      1 : Service metric overrides the IGP/SDR metric

      2 : Computed metric is composite of IGP metric + SDR metric +
      Service metric

   The Services of interest (Consumers exist) are described in a unique
   sub-TLV.  The sub-TLV should contain a Service Identifier which
   uniquely identifies the service with network wide significance.  The
   sub-TLV format should be flexible and MUST contained the preferred
   SDR ID.  If no producer exists yet for the service then the Preferred
   SDR ID should be set to 0.









Pillay-Esnault, et al.  Expires September 7, 2012              [Page 11]

Internet-Draft       Service Distribution using OSPF          March 2012


 TLV
       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            2                  |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                          Service ID                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                             PSDR ID                           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                       Service Subscription Sub-TLV

   Type: A 16-bit field set to 2 representing the Service Subscription
   Sub-TLV This TLV is applicable both to OSPFv2 and OSPFv3.

   Length: A 16-bit field that indicates the length of the value portion
   in octets.

   Service ID: A 32-bit field representing the Service Identifier.  A
   Service Identifier may only be defined in a unique sub-tlv.  This TLV
   is applicable both to OSPFv2 and OSPFv3.

   PSDR ID: A 32-bit field that indicates the PSDR for data exchange.
   Set to 0 if there is no producer for the service.

   The topological view and characteristics of the OSPF Overlay Service
   Distribution Routers can be used to compute preferred producer
   independent of IGP metrics.  It is possible to have multiple LSAs for
   large directories however a service must be described in a unique
   sub-tlv for the SDR.

7.4.  Service Routing Capable Router Operations

   The additional requirements are

      No assumption on topology

      Multiple producers may exists

      Multiple consumers can all have different service interest

      Producers/Consumers may join and leave at anytime

      Consumers and Producers have access to the Service Data database

   The SDR capable routers advertise the consumers who subscribe to a



Pillay-Esnault, et al.  Expires September 7, 2012              [Page 12]

Internet-Draft       Service Distribution using OSPF          March 2012


   service.  The producers may connect to the SDR router to update the
   services/data in the Service Data database.  The SDR router then
   builds the Opaque LSA describing the producer services which are
   reachable through it as well as the services its consumers are
   interested in.

   When the router has a full neighbor relationship, it now has the
   topological view of all SDR capable routers in the domain as well as
   the services they offer and are interested in.

   Leveraging the fact that the OSPF has already run its SPF, the
   reachability of overlay SDR capable routers and services offered.  It
   is possible to calculate the preferred Producer SDR for a service by
   using a composite of the IGP metric, the SDR metric and the service
   metric.  The list of preferred producers for a service can then be
   evaluated at each SDR.

   The list of Consumer SDRs interested in service can also easily be
   computed from the directory of consumers.

7.4.1.  Operation due to Producer changes

   The producer service operations are

      New producer advertises a service

      Existing Producer start advertising a new service

      Existing Producer stops advertising a service.

   The router will be notified by the application regarding the new
   producer and the services offered.  The router will then either
   update or create an Opaque LSA to advertise this new information and
   flood it to all SR routers.

   Upon receiving this information, remote SDR routers can recalculate
   the preferred PSDR.  It may also need to perform some operations if
   it have consumers for this new service.

7.4.2.  Operation due to Consumer changes

   The consumer service operations are

      A new consumer join and add subscription

      An existing consumer stops subscriptions





Pillay-Esnault, et al.  Expires September 7, 2012              [Page 13]

Internet-Draft       Service Distribution using OSPF          March 2012


      An existing consumer adds subscriptions

   The router will be notified by the application regarding the new
   consumer and the services it is interested in.  The router will then
   either update or create an Opaque LSA to advertise this new
   information and flood it to all SDR routers.

   Upon receipt of the new Opaque LSA the remote SDR routers can then
   update the list of CSDRs interested in their services per latest
   information.

8.  Calculation of Optimal Producer

   Leveraging OSPF capability to store and compute paths on a topology,
   the same mechanisms can be used to compute the Optimal PSDRs using
   the SPF for SDR reachable address using IGP metrics, SDR metric and
   the service metric.  The Optimal PSDR is used in the consumer subtlv.

9.  Service Router Data Operations

   OSPF SDR delegates the task of SDD distribution to the Data Exchange
   Agent.  This text defines an implementation of such an agent and
   named it the Service Data Distribution Agent (SDDA).  OSPF SDR
   provides SDDA information about which Consumer SDR is interested
   which service provided by this OSPF (Producer) SDR.  The SDDA makes
   use of such information to setup distribution channel for SDD
   distribution from this OSPF Producer SDR to other OSPF Consumer SDRs.

   For each OSPF Consumer SDR which subscribes to at least one service
   provided by this OSPF Producer SDR, there will be a different
   distribution channel created.

   The distribution channel is setup when the OSPF Consumer SDR has
   subscribed to its first service provided by this OSPF Producer SDR.
   When the OSPF Consumer SDR subscribes to additional service provided
   by this OSPF Producer SDR, service data for the new service will be
   carried over the existing distribution channel.  In order words, the
   same distribution channel can carry service data for different
   services.  The services carried are said to be bound to the
   distribution channel.

   When a distribution channel is first setup for a service or a new
   service is bound to the channel, the SDDA will notify the SDD.  In
   turn, the SDD will send the latest data for that service to the SDDA
   for distribution over that channel.

   On the other hand, whenever the SDD has new version of data for a
   service, the SDD will send those data to the SDDA, which will



Pillay-Esnault, et al.  Expires September 7, 2012              [Page 14]

Internet-Draft       Service Distribution using OSPF          March 2012


   distribute the new data to all the distribution channels which carry
   the service.

9.1.  Implementation of SDDA

   The SDDA uses TCP [RFC793] as its transport protocol for service data
   distribution.  This eliminates the need to implement explicit update
   fragmentation, retransmission, acknowledgement, and sequencing.  SDDA
   listens on TCP Port 1001 .  The error notification mechanism used in
   SDDA assumes that TCP supports a "graceful" close (i.e., that all
   outstanding data will be delivered before the connection is closed).

   The SDDA MUST listen on TCP Port 1001 for incoming connections.

   Connection is unidirectional in respect of service data distribution.
   At most two connections exists between any two SDRs, one for each
   direction.  The same connection is used to distribute data of
   multiple services from the PSDR to the CSDR.

   Connection is initiated and teardown by the PSDR.  The connection is
   referred as the outgoing connection on the PSDR and as incoming
   connection on the CSDR.

   Connection is initiated when the PSDR discover, through the producer
   and consumer directory, that the CSDR has chosen it as the provider
   of a service.  If PSDR already have an outgoing connection to the
   same CSDR, no new connection is made and the existing outgoing
   connection will be used to distribute data for the service.

   Connection is teardown when the PSDR discover, through the producer
   and consumer directory, the CSDR no longer use it as provider for any
   services.

   Connection is teardown when the CSDR discover, through the producer
   and consumer directory, the PSDR no longer support any services it is
   interested in.

   Connection is also teardown when error occurs, as indicated by the
   NOTIFICATION message.

9.2.  SDR Message Formats

   This section describes message formats used by SDDA over the TCP
   connection.

   SDR messages are sent over TCP connections.  A message is processed
   only after it is entirely received.  The maximum message size is
   65535, including the message header.



Pillay-Esnault, et al.  Expires September 7, 2012              [Page 15]

Internet-Draft       Service Distribution using OSPF          March 2012


   All multi-octet fields are in network byte order.

   TCP AO [RFC5925] is used for authentication.

9.3.  SDR Message Header Format

   Each message has a fixed-size header.  There may or may not be a data
   portion following the header, depending on the message type.  The
   layout of these fields is shown below:


       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |          Type                 |         Length                |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         SDR Message Header Format

      Type : This 2-octet unsigned integer indicates the type code of
      the message.  This document defines the following type codes:



         1 - OPEN

         2 - CONFIRM

         3 - UPDATE

         4 - NOTIFICATION

      Length: This 2-octet unsigned integer indicates the total length
      of the message, including the header in octets.  The maximum
      message length is 65535, and MAY be further constrained, depending
      on the message type.  The value must be at least 4.

9.4.  OPEN Message Format

   After a TCP connection is established, the first message sent by both
   side is an OPEN message.  If the OPEN message is accepted and
   processed successfully, a CONFIRM message confirming the OPEN is sent
   back.

   Following the message header, the OPEN message contains the following
   fields:





Pillay-Esnault, et al.  Expires September 7, 2012              [Page 16]

Internet-Draft       Service Distribution using OSPF          March 2012


       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+
       |    Version    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    OSPF Producer SDR Identifier               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    OSPF Consumer SDR Identifier               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     Length of TLVs            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                             TLVs                              |
       :                                                               :
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            OPEN Message Format

      Version: This 1-octet unsigned integer indicates the protocol
      version number of the message.  The current OSPF SDR version
      number is 1.

      OSPF Producer SDR Identifier: This 4-octet unsigned integer
      indicates the OSPF router ID of the producer SDR of the service.

      OSPF Consumer SDR Identifier: This 4-octet unsigned integer
      indicates the OSPF router ID of the consumer SDR of the service.

      Length of TLVs: This 2-octet indicates the total length of TLVs
      information in the OPEN message.  Could be 0.

      TLVs: Zero or more Type-Length-Value tuple of the following
      format.


       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            Type               |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                          Value                                |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             No TLV for OPEN message is defined at the moment.

   If the OSPF Producer SDR Identifier or the OSPF Consumer SDR



Pillay-Esnault, et al.  Expires September 7, 2012              [Page 17]

Internet-Draft       Service Distribution using OSPF          March 2012


   Identifier does not match information learned through the producer
   and consumer directory, the NOTIFICATION is sent back to reject the
   connection.

   The subTLVs could define further constraint that must be met before
   the connection is OPEN message is considered succeed.

   The NOTIFICATION message will be sent to indicate if the OPEN is
   accept or not.

   If OPEN is rejected, the TCP connection MUST be teardown after
   sending the NOTIFICATION.  The TCP connection should be retried if
   the condition that cause the failure is corrected.

9.5.  CONFIRM Message Format

   CONFIRM messages are used to confirm the OPEN message is accepted.

   It has no additional data following the header.

   The OSPF Producer SDR MUST NOT send UPDATE message until a CONFIRM
   message is received.

   The OSPF Consumer SDR MUST NOT accept UPDATE message until a CONFIRM
   message is received.  If the OSPF Consumer receive UPDATE message
   before the CONFIRM message, it should send a NOTIFICATION and close
   the connection.

9.6.  UPDATE Message Format

   UPDATE messages are used to push the latest service data from SDD
   from OSPF producer SDR to OSPF consumer SDR.

   Following the message header, the UPDATE message contains the
   following fields:


       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     Length of TLVs            |
       +---------------------------------------------------------------+
       |                                                               |
       |                         TLVs                                  |
       |                                                               |
       +---------------------------------------------------------------+

                           UPDATE Message Format



Pillay-Esnault, et al.  Expires September 7, 2012              [Page 18]

Internet-Draft       Service Distribution using OSPF          March 2012


      Length of TLVs: This 2-octets unsigned integer indicates the total
      length of TLV information contained in the message.

      TLVs: Zero or more Type-Length-Value tuple of the following
      format.


       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           Type                |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                          Value                                |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                TLV Format

   The following TLV is defined for the UPDATE message.

   Services Update TLV:


       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |             1                 |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                        Service ID                             |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                        Service Data (Variable)                |
       :                                                               :
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Service Update TLV Format

      Service ID: The 4-Octets indicates the service this update is
      originated from.

      Service Data: Various length of service data.  Its format is
      opaque to OSPF SDR and is defined by the service itself.








Pillay-Esnault, et al.  Expires September 7, 2012              [Page 19]

Internet-Draft       Service Distribution using OSPF          March 2012


9.7.  NOTIFICATION Message Format

   A NOTIFICATION message is sent when an error condition is detected.
   The TCP connection is closed immediately after it is sent.

   Following the message header, the NOTIFICATION message contains the
   following fields:


       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | Error code    | Error subcode |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     Length of TLVs            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                            TLVs                               |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        NOTIFICATION Message Format

      Error Code: This 1-octet unsigned integer indicates the type of
      NOTIFICATION.

      The following Error Codes have been defined:



         1 - Message header error

         2 - OPEN message error

         3 - CONFIRM message error

         4 - UPDATE message error

         5 - Cease

      Error subcode: This 1-octet unsigned integer provides more
      specific information about the nature of the reported error.  The
      value 0 means unspecific error.

      Length of TLVs: This 2-octet indicates the total length of TLVs
      information in the NOTIFICATION message.  May be 0 to indicate no
      Sub-tlvs.




Pillay-Esnault, et al.  Expires September 7, 2012              [Page 20]

Internet-Draft       Service Distribution using OSPF          March 2012


      SubTLVs: Zero or more Type-Length-Value tuple of the following
      format.



       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            Type               |             Length            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       |                          Value                                |
       :                                                               :
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         NOTIFICATION Message Format

      No TLV for NOTIFICATION message is defined at the moment.

9.7.1.  Message Header Error

   The error code 1 is used for error detected at the common message
   header.

   Error subcodes:

      0 - Unknown

      1 - Bad Message Length

      2 - Bad Message Type

9.7.2.  OPEN Message Error

   The error code 2 is used for error detected while processing the OPEN
   message.

   Error subcodes:

      0 - Unknown

      1 - Unsupported Version Number.

      2 - Bad Producer SDR Identifier.

      3 - Bad Consumer SDR Identifier.





Pillay-Esnault, et al.  Expires September 7, 2012              [Page 21]

Internet-Draft       Service Distribution using OSPF          March 2012


      4 - No Producer

      5 - No Consumer

      6 - Malformed TLV

9.7.3.  CONFIRM Message Error

   The error code 3 is used for error detected while processing the
   UPDATE message.

   Error subcodes:

      0 - Unknown

      1 - Bad Message Sequence

9.7.4.  UPDATE Message Error

   The error code 4 is used for error detected while processing the
   UPDATE message.

   Error subcodes:

      0 - Unknown

      1 - Bad Message Sequence

      2 - Malformed TLV

9.7.5.  Cease

   The error code 5 is used when the OSPF SDR choose to close the
   connection due to reason other then message processing.

   Error subcodes:

      0 - Unknown

      1 - No Producer

      2 - No Consumer

10.  Security Considerations

   The new extensions defined in this document do not introduce any new
   security concerns other than those already defined in Section 6 of
   [RFC2328] and [RFC5340].



Pillay-Esnault, et al.  Expires September 7, 2012              [Page 22]

Internet-Draft       Service Distribution using OSPF          March 2012


11.  IANA Considerations

   IANA is requested to allocate the value 1001 to "Service Data
   Distribution " within the "Port Numbers" registry.

12.  Contributors

   The authors would like to acknowledge the contributions of

      Mike Dubroskiy

      Rashmi Shrivastava

      Jean-Michel Esnault

13.  Acknowledgments

   The authors would like to thank Les Ginsberg, Keyur Patel and many
   others who participated in numerous discussions.

   This document was produced using Marshall Rose's xml2rfc tool.

14.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2328]  Moy, J., "OSPF Version 2", RFC 2328, April 1998.

   [RFC4970]  Lindem, A., Shen, N., Vasseur, JP., Aggarwal, R., and S.
              Shaffer, "Extensions to OSPF for Advertising Optional
              Router Capabilities", RFC 4970, July 2007.

   [RFC5250]  Berger, L., Bryskin, I., Zinin, A., and R. Coltun, "The
              OSPF Opaque LSA Option", RFC 5250, July 2008.

   [RFC5340]  Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
              for IPv6", RFC 5340, July 2008.

   [RFC5925]  Touch, J., Mankin, A., and R. Bonica, "The TCP
              Authentication Option", RFC 5925, June 2010.

   [RFC793]   Postel, J., "Transmission Control Protocol", RFC 793,
              September 1981.







Pillay-Esnault, et al.  Expires September 7, 2012              [Page 23]

Internet-Draft       Service Distribution using OSPF          March 2012


Authors' Addresses

   Padma Pillay-Esnault
   Cisco Systems
   510 McCarty Blvd
   Milpitas, CA  95035
   USA

   EMail: ppe@cisco.com


   Burjiz Pithawala
   Cisco Systems
   510 McCarty Blvd
   Milpitas, CA  95035
   USA

   EMail: bpithaw@cisco.com


   Derek Yeung
   Cisco Systems
   510 McCarty Blvd
   Milpitas, CA  95035
   USA

   EMail: myeung@cisco.com
























Pillay-Esnault, et al.  Expires September 7, 2012              [Page 24]


Html markup produced by rfcmarkup 1.98, available from http://tools.ietf.org/tools/rfcmarkup/